/*
 * @Author: wangyingjie 2778809626@qq.com
 * @Date: 2025-04-16 14:12:51
 * @LastEditors: wangyingjie 2778809626@qq.com
 * @LastEditTime: 2025-04-17 13:09:20
 * @FilePath: /ros2_proj_template/src/publish_pkg/core/config/module_a_config.h
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

#include "publishTool.h"
#include "project_marco.h"
#include "config/module_a_config.h"


int main(int argc, char** argv)
{
  const std::string core_cfg_name = "module_a_config.json";
  const std::string core_config_file = std::filesystem::path(DEFAULT_ROOT_DIR).append("config").append(core_cfg_name).string();
  std::cout << "配置文件路径：" << core_config_file << std::endl;

    // 读取并打印 JSON 数据
    // readJsonFromFile(core_config_file);

  if (!module_a_config::sample().read_config(core_config_file))
  {
      // SLOG_ERROR("初始化 {} 配置项失败", core_config_file);
      return -1;
  }
  
  // 打印查看配置文件内容, 待删除
  {
    std::cout << "读取配置文件内容：" << std::endl;
    std::cout <<  module_a_config::sample().name << std::endl;
    std::cout <<  module_a_config::sample().age << std::endl;
    std::cout <<  module_a_config::sample().height << std::endl;
    for(const auto& item : module_a_config::sample().hobbies)
    {
      std::cout << item << std::endl;
    }
    for(const auto& [key, value] : module_a_config::sample().address)
    {
      std::cout << key << " : " << value << std::endl;
    }
  }


  rclcpp::init(argc,argv);
  // 声明一个节点对象，该节点的类型是我们是声明的 发布者类
  auto node = std::make_shared<publisher>(module_a_config::sample().name);
  while(1)
  {
    // 循环发布数据
    sleep(3);
    node->publish_data();
  }
  rclcpp::spin(node);
  rclcpp::shutdown();
}
